<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <script type="text/javascript" src="./ajax.js"></script>
    <script>
        // Promise 静态方法--并行处理
        
        const promise1 = Promise.resolve(1);
        const promise2 = 2;
        const promise3 = new Promise((resolve, reject) => {
            setTimeout(resolve, 100, 'success')
        });
        const promise4 = new Promise((resolve, reject) =>{
            setTimeout(resolve, 300, 'error4')
        });
        const promise5 = new Promise((resolve, reject) =>{
            setTimeout(resolve, 500, 'error5')
        });


        // Promise.all(iterable)
        // 这个方法是等待所有任务结束后返回一个新的promise对象
        // 只有所有的promise成功才会出发成功， 否则就出发失败
        // 成功的返回值是一个数组
        Promise.all([promise1, promise2,promise3])
            .then(value=>console.log(value))

        // Promise.race(iterable)
        // 只会等待第一个结束的任务
        // race 返回一个 promise，一旦迭代器中的某个 promise 解析或拒绝，返回的 promise 就会解析或拒绝。
        Promise.race([promise4,promise5]).then(value=>console.log(value))

        // Promise.any(iterable)
        // 接收一个Promise对象的集合，当其中的一个 promise 成功，就返回那个成功的promise的值。
        Promise.any([promise1, promise2,promise3])
            .then(value=>console.log(value))
            .catch(error=> console.log(error) )



    </script>
</head>
<body>
    
</body>
</html>